{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据清洗\n",
    "对所有歌词的csv文件进行处理\n",
    "- 去除未对齐的歌词，不允许仅有一方为NaN\n",
    "- 去除不是日语的歌词"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "32136\n",
      "6024\n"
     ]
    }
   ],
   "source": [
    "import pandas\n",
    "import numpy\n",
    "import os\n",
    "\n",
    "# 去除未对齐的歌词 语言不对的歌词\n",
    "# 读取文件夹中的csv文件\n",
    "folder_path = '/root/autodl-tmp/final/lyric_hot'\n",
    "csv_files = os.listdir(folder_path)\n",
    "delete_files = []\n",
    "print(len(csv_files))\n",
    "count = 0\n",
    "for csv_file in csv_files:\n",
    "    with open(os.path.join(folder_path, csv_file)) as f:\n",
    "        df = pandas.read_csv(f)\n",
    "        df = df.fillna('@fill')\n",
    "        for row in df.iterrows():\n",
    "            # print(row[1][\"Chinese\"])\n",
    "            if row[1][\"Chinese\"]==\"@fill\" or row[1][\"Japanese\"]==\"@fill\":\n",
    "                if row[1][\"Chinese\"] != row[1][\"Japanese\"]:\n",
    "                    count+=1\n",
    "                    delete_files.append(csv_file)\n",
    "                    break\n",
    "                # print('ok')\n",
    "                # delete_files.append(csv_file)\n",
    "print(count)\n",
    "# 删除文件\n",
    "for delete_file in delete_files:\n",
    "    os.remove(os.path.join(folder_path, delete_file))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3318\n"
     ]
    }
   ],
   "source": [
    "def check_language(string: str) -> str:\n",
    "    \"\"\"检查语言\n",
    "    :return zh:中文,en:英文,\n",
    "    \"\"\"\n",
    "    import langid\n",
    "    import re\n",
    "\n",
    "    new_string = re.sub(r'[0-9]+', '', string)  # 这一步剔除掉文本中包含的数字\n",
    "    return langid.classify(new_string)[0]\n",
    "\n",
    "\n",
    "# print(check_language(\"初めて\"))  # en\n",
    "count = 0\n",
    "folder_path = '/root/autodl-tmp/final/lyric_hot'\n",
    "csv_files = os.listdir(folder_path)\n",
    "delete_files = []\n",
    "for csv_file in csv_files:\n",
    "    with open(os.path.join(folder_path, csv_file)) as f:\n",
    "        df = pandas.read_csv(f)\n",
    "        df = df.fillna('@fill')\n",
    "        for row in df.iterrows():\n",
    "            # print(row[1][\"Chinese\"])\n",
    "            if check_language(row[1][\"Japanese\"]) != 'ja':\n",
    "                count+=1\n",
    "                delete_files.append(csv_file)\n",
    "            break\n",
    "print(count)\n",
    "# 删除文件\n",
    "for delete_file in delete_files:\n",
    "    os.remove(os.path.join(folder_path, delete_file))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "22794\n",
      "14\n"
     ]
    }
   ],
   "source": [
    "import pandas\n",
    "import numpy\n",
    "import os\n",
    "\n",
    "# 去除以第一句中文歌词以by开头的\n",
    "folder_path = '/root/autodl-tmp/final/lyric_hot'\n",
    "csv_files = os.listdir(folder_path)\n",
    "delete_files = []\n",
    "print(len(csv_files))\n",
    "count = 0\n",
    "for csv_file in csv_files:\n",
    "    with open(os.path.join(folder_path, csv_file)) as f:\n",
    "        df = pandas.read_csv(f)\n",
    "        df = df.fillna('@fill')\n",
    "        for row in df.iterrows():\n",
    "            # print(row[1][\"Chinese\"])\n",
    "            if row[1][\"Chinese\"].startswith('by'):\n",
    "                    count+=1\n",
    "                    delete_files.append(csv_file)\n",
    "                    break\n",
    "print(count)\n",
    "# 删除文件\n",
    "for delete_file in delete_files:\n",
    "    os.remove(os.path.join(folder_path, delete_file))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 定义数据集\n",
    "data = json.load(open('/root/autodl-tmp/final/JCLT/hot/train_lyrics_hot.json'))\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计句子长度\n",
    "chinese_lengths = [len(pair[0]) for pair in data if len(pair[0])<60]\n",
    "japanese_lengths = [len(pair[1]) for pair in data if len(pair[1])<60]\n",
    "\n",
    "# # 打印统计结果\n",
    "# print(\"中文句子长度:\", chinese_lengths)\n",
    "# print(\"日语句子长度:\", japanese_lengths)\n",
    "\n",
    "# # 可视化\n",
    "# plt.figure(figsize=(10, 5))\n",
    "\n",
    "# # 中文句子长度分布\n",
    "# plt.subplot(1, 2, 1)\n",
    "# plt.hist(chinese_lengths, bins=range(min(chinese_lengths), max(chinese_lengths) + 1), alpha=0.7, color='blue', edgecolor='black')\n",
    "# plt.title('Chinese Sentence Length Distribution')\n",
    "# plt.xlabel('Length')\n",
    "# plt.ylabel('Frequency')\n",
    "\n",
    "# # 日语句子长度分布\n",
    "# plt.subplot(1, 2, 2)\n",
    "# plt.hist(japanese_lengths, bins=range(min(japanese_lengths), max(japanese_lengths) + 1), alpha=0.7, color='green', edgecolor='black')\n",
    "# plt.title('Japanese Sentence Length Distribution')\n",
    "# plt.xlabel('Length')\n",
    "# plt.ylabel('Frequency')\n",
    "\n",
    "# plt.tight_layout()\n",
    "# plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAHACAYAAADN+qsZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACRbElEQVR4nOzdd3gUVd/G8e9ueiAFAoQWeu8dAwJSBBR9QFBAERCxU1Qsrz72x4Ji7w0FRLEjKiC9inTpvYRO6ElISN95/xh3IRAwyc5mU+7Pde01k93Z3zkbQHPnnDnHZhiGgYiIiIiIiOQ7u7c7ICIiIiIiUlwpkImIiIiIiHiJApmIiIiIiIiXKJCJiIiIiIh4iQKZiIiIiIiIlyiQiYiIiIiIeIkCmYiIiIiIiJcokImIiIiIiHiJr7c7UFQ4HA6OHDlCSEgINpvN290REREREREvMQyDs2fPUrFiRez2K4+BKZBZ5MiRI0RFRXm7GyIiIiIiUkAcPHiQypUrX/EaBTKLhISEAOY3PTQ01Mu9ERERERERb0lISCAqKsqVEa5EgcwizmmKoaGhCmQiIiIiIpKjW5m0qIeIiIiIiIiXKJCJiIiIiIh4iQKZiIiIiIiIl+geMhERERGxjGEYZGRkkJmZ6e2uiHiMj48Pvr6+lmx3pUAmIiIiIpZIS0vj6NGjnDt3zttdEfG44OBgKlSogL+/v1t1FMhERERExG0Oh4OYmBh8fHyoWLEi/v7+loweiBQ0hmGQlpbGiRMniImJoXbt2v+6+fOVKJCJiIiIiNvS0tJwOBxERUURHBzs7e6IeFRQUBB+fn7s37+ftLQ0AgMD81xLi3qIiIiIiGXcGSkQKUys+ruufzEiIiIiIiJeokAmIiIiIiLiJQpkIiIiIiL/wmazMW3atMu+vmjRImw2G3FxcfnWJykaFMhEREREpFiLjY1l1KhR1KhRg4CAAKKiorjxxhuZP39+jmu0a9eOo0ePEhYW5sGeum/x4sV06dKF0qVLExwcTO3atRk6dChpaWmWtbFv3z5sNhvr16+3rGZRpkAmIiIiIsXWvn37aNmyJQsWLOD1119n06ZNzJo1i86dOzNixIgc1/H396d8+fIFeqn/rVu30rNnT1q1asWSJUvYtGkT77//Pv7+/trI24sUyEQ8YMcO6NkTli/3dk9ERES8wzAgKck7D8PIeT8feOABbDYbq1atol+/ftSpU4eGDRsyZswYVqxYkeXakydPctNNN7lGln777TfXaxdPWZw4cSLh4eHMnj2b+vXrU7JkSXr27MnRo0ez1Bw/fjz169cnMDCQevXq8dFHH7leS0tLY+TIkVSoUIHAwECqVq3K2LFjXa/HxcVx1113UbZsWUJDQ+nSpQsbNmy47GedM2cO5cuXZ9y4cTRq1IiaNWvSs2dPPv/8c4KCglzX/fnnn3To0IGgoCCioqIYPXo0SUlJrterVavGK6+8wp133klISAhVqlThs88+c71evXp1AJo3b47NZuOaa67J0ed1jqxNnTqVzp07ExwcTNOmTVl+0Q9Uy5Yt45prriE4OJhSpUrRo0cPzpw5A5j74Y0dO5bq1asTFBRE06ZN+emnn1zvPXPmDIMGDaJs2bIEBQVRu3ZtJkyYcNnvWb4wxBLx8fEGYMTHx3u7K1IADBxoGGAY11/v7Z6IiIjkj+TkZGPr1q1GcnKyYRiGkZho/r/QG4/ExJz1+dSpU4bNZjNeeeWVf70WMCpXrmxMmTLF2LVrlzF69GijZMmSxqlTpwzDMIyFCxcagHHmzBnDMAxjwoQJhp+fn9GtWzdj9erVxtq1a4369esbt912m6vm119/bVSoUMH4+eefjb179xo///yzUbp0aWPixImGYRjG66+/bkRFRRlLliwx9u3bZyxdutSYMmWK6/3dunUzbrzxRmP16tXGzp07jUceecSIiIhw9eli3377rREQEGAsXrz4sp9z9+7dRokSJYy3337b2Llzp7Fs2TKjefPmxh133OG6pmrVqkbp0qWNDz/80Ni1a5cxduxYw263G9u3bzcMwzBWrVplAMa8efOMo0ePuvrzb583JibGAIx69eoZ06dPN3bs2GHcfPPNRtWqVY309HTDMAxj3bp1RkBAgHH//fcb69evNzZv3my8//77xokTJwzDMIyXXnrJqFevnjFr1ixjz549xoQJE4yAgABj0aJFhmEYxogRI4xmzZoZq1evNmJiYoy5c+cav/3227/++Wfn4r/zF8pNNlAgs4gCmTjFxxtGYKD5P4QSJQwjNdXbPRIREfG8whjIVq5caQDG1KlT//VawHj66addXycmJhqA8ccffxiGkX0gA4zdu3e73vPhhx8akZGRrq9r1qyZJWAZhmG8+OKLRnR0tGEYhjFq1CijS5cuhsPhuKQ/S5cuNUJDQ42UlJQsz9esWdP49NNPs/0MGRkZxh133GEARvny5Y0+ffoY77//fpafX4cPH27cc889l7Rlt9tdf7ZVq1Y1br/9dtfrDofDKFeunPHxxx8bhnE+WK1bt+6Svl3p8zrfN378eNfrW7ZsMQBj27ZthmEYxq233mq0b98+28+XkpJiBAcHG3/99VeW54cPH27ceuuthmEYxo033mgMGzYs2/fnllWBzDffh+REiripUyElxTxPSoKVK6FDB+/2SUREJL8FB0NiovfazgkjN3MbgSZNmrjOS5QoQWhoKMePH79CP4KpWbOm6+sKFSq4rk9KSmLPnj0MHz6cu+++23VNRkaGa2GQO+64g2uvvZa6devSs2dPbrjhBrp37w7Ahg0bSExMJCIiIkubycnJ7NmzJ9v++Pj4MGHCBF566SUWLFjAypUreeWVV3jttddYtWoVFSpUYMOGDWzcuJFvvvnG9T7DMHA4HMTExFC/fv1Lvhc2m43y5ctf8XuRk8/rdGHtChUqAHD8+HHq1avH+vXrueWWW7JtY/fu3Zw7d45rr702y/NpaWk0b94cgPvvv59+/frx999/0717d/r06UO7du0u2+/8oEAmYrGvvzaPfn6Qng7z5imQiYhI8WOzQYkS3u7FldWuXRubzcb27dtzdL2fn1+Wr202Gw6HI1fXO0Ng4j9p9fPPP6dt27ZZrvPx8QGgRYsWxMTE8McffzBv3jz69+9Pt27d+Omnn0hMTKRChQosWrToknbDw8Ov+DkqVarE4MGDGTx4MC+++CJ16tThk08+4YUXXiAxMZF7772X0aNHX/K+KlWqXPGzXel7kZPPm11t5yIpztoX3ut2uTZmzJhBpUqVsrwWEBAAwHXXXcf+/fuZOXMmc+fOpWvXrowYMYI33njjsnU9TYFMxEKHDsGCBeb544/Dyy/D/Pnwwgve7ZeIiIhcqnTp0vTo0YMPP/yQ0aNHU+KiBBkXF/ev4SavIiMjqVixInv37mXQoEGXvS40NJQBAwYwYMAAbr75Znr27Mnp06dp0aIFsbGx+Pr6Uq1atTz3o1SpUlSoUMG1aEeLFi3YunUrtWrVynNNf39/gCwrN+b08/6bJk2aMH/+fF7I5oerBg0aEBAQwIEDB+jUqdNla5QtW5ahQ4cydOhQOnTowGOPPaZAJlJUfPutOXv96qvhrrvMQLZiBSQkQGiot3snIiIiF/vwww9p3749bdq04X//+x9NmjQhIyODuXPn8vHHH7Nt2zaPtf3CCy8wevRowsLC6NmzJ6mpqaxZs4YzZ84wZswY3nrrLSpUqEDz5s2x2+38+OOPlC9fnvDwcLp160Z0dDR9+vRh3Lhx1KlThyNHjjBjxgxuuukmWrVqdUl7n376KevXr+emm26iZs2apKSk8NVXX7Flyxbef/99AP7v//6Pq666ipEjR3LXXXdRokQJtm7dyty5c/nggw9y9LnKlStHUFAQs2bNonLlygQGBhIWFvavnzcnnnzySRo3bswDDzzAfffdh7+/PwsXLuSWW26hTJkyPProozz88MM4HA6uvvpq4uPjWbZsGaGhoQwdOpRnn32Wli1b0rBhQ1JTU5k+fbprGqa3eHXZ+8zMTJ555hnXspQ1a9bkxRdfzDKf1zAMnn32WSpUqEBQUBDdunVj165dWeqcPn2aQYMGERoaSnh4OMOHD3cNWTpt3LiRDh06EBgYSFRUFOPGjbukPz/++CP16tUjMDCQxo0bM3PmTM98cCmyJk82j4MHQ7VqULMmZGbCkiVe7ZaIiIhcRo0aNfj777/p3LkzjzzyCI0aNeLaa69l/vz5fPzxxx5t+6677mL8+PFMmDCBxo0b06lTJyZOnOhaNj4kJIRx48bRqlUrWrduzb59+5g5cyZ2ux2bzcbMmTPp2LEjw4YNo06dOgwcOJD9+/cTGRmZbXtt2rQhMTGR++67j4YNG9KpUydWrFjBtGnTXCNKTZo0YfHixezcuZMOHTrQvHlznn32WSpWrJjjz+Xr68t7773Hp59+SsWKFendu3eOPm9O1KlThzlz5rBhwwbatGlDdHQ0v/76K76+5jjTiy++yDPPPMPYsWOpX78+PXv2ZMaMGa42/P39efLJJ2nSpAkdO3bEx8eH7777Lsfte4QlS4zk0csvv2xEREQY06dPN2JiYowff/zRKFmypPHuu++6rnn11VeNsLAwY9q0acaGDRuM//znP0b16tWzrGbSs2dPo2nTpsaKFSuMpUuXGrVq1XKtpGIY5ionkZGRxqBBg4zNmzcb3377rREUFJRlBZply5YZPj4+xrhx44ytW7caTz/9tOHn52ds2rQpR59FqyzKhg3myk7+/oZx+rT53L33ms899JB3+yYiIuJpV1pxTqQosmqVRZth5HJ5GQvdcMMNREZG8sUXX7ie69evH0FBQXz99dcYhkHFihV55JFHePTRRwGIj48nMjKSiRMnMnDgQLZt20aDBg1YvXq1a2h21qxZXH/99Rw6dIiKFSvy8ccf89RTTxEbG+ua0/rEE08wbdo0102cAwYMICkpienTp7v6ctVVV9GsWTM++eSTf/0sCQkJhIWFER8fT6jmphVLjz0Gb7wBffvCzz+bz/34I/TvD40awaZN3u2fiIiIJ6WkpBATE0P16tUJDAz0dndEPO5Kf+dzkw28OmWxXbt2zJ8/n507dwLm8p1//vkn1113HQAxMTHExsbSrVs313vCwsJo27ata8fu5cuXEx4enmWebLdu3bDb7axcudJ1TceOHV1hDKBHjx7s2LHDtav38uXLs7TjvObincFFspOZCVOmmOe3337++c6dzVWmNm+G2Fjv9E1ERERECi6vLurxxBNPkJCQQL169fDx8SEzM5OXX37ZtfJK7D8/wV48DzYyMtL1WmxsLOXKlcvyuq+vL6VLl85yzcVzU501Y2NjKVWqFLGxsVds52Kpqamkpqa6vk5ISMjVZ5eiZdEiOHIESpWC668//3yZMtC8Ofz9t7naohuLComIiIhIEeTVEbIffviBb775hilTpvD3338zadIk3njjDSZNmuTNbuXI2LFjCQsLcz2ioqK83SXxIudiHv37wz/bXLh07Woe58/P3z6JiIiISMHn1UD22GOP8cQTTzBw4EAaN27M4MGDefjhhxk7diwA5cuXB+DYsWNZ3nfs2DHXa9ntCp6RkcHp06ezXJNdjQvbuNw1ztcv9uSTTxIfH+96HDx4MNefX4qGc+fO3zN24XRFJ+dM2HnzzCXxRUREREScvBrIzp07h92etQs+Pj6unbirV69O+fLlmX/B0EJCQgIrV64kOjoagOjoaOLi4li7dq3rmgULFuBwOFy7gEdHR7NkyRLS09Nd18ydO5e6detSqlQp1zXzLxrCmDt3rqudiwUEBBAaGprlIcXTr79CYqK5zH379pe+fvXV4O8PBw/CRTs2iIiIiEgx59VAduONN/Lyyy8zY8YM9u3bxy+//MJbb73FTTfdBIDNZuOhhx7ipZde4rfffmPTpk0MGTKEihUr0qdPHwDX/gJ33303q1atYtmyZYwcOZKBAwe69ku47bbb8Pf3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9+Lv709ERESWKUY2m02BTCxl9QqLSw6YgaxjFa2umFc332wGsl9/hfR08PNzr16/+v2YvnM6U7dN5dlOz1rTSREREZFCIE935DzzzDM8++yzxMfHs2/fPmJiYlyPvXv35qkjr776KjabjYceesj1XEpKCiNGjCAiIoKSJUvSr18/jh07luV9Bw4coFevXgQHB1OuXDkee+wxMjIyslyzaNEiWrRoQUBAALVq1WLixImXtP/hhx9SrVo1AgMDadu2LatWrcrT5xBrpaTArl3muRUjZA7D4bp/TMvd51379lCuHJw5AwsXul/vxjo34mPzYcOxDew5vcf9giIiIiKFRJ4C2blz5xg4cCB2K1ZYAFavXs2nn35KkyZNsjz/8MMP8/vvv/Pjjz+yePFijhw5Qt++fV2vZ2Zm0qtXL9LS0vjrr7+YNGkSEydO5Nlnz/+GPSYmhl69etG5c2fWr1/PQw89xF133cXs2bNd13z//feMGTOG5557jr///pumTZvSo0cPjh8/bsnnk7zbscNc9r5UKahQwf16W09s5UzKGYL9gmlRoYX7BYspHx9w/lO0YpPoiOAIrql2DQC/bP/F/YIiIiIihUSeEtXw4cP58ccfLelAYmIigwYN4vPPP6dUqVKu5+Pj4/niiy9466236NKlCy1btmTChAn89ddfrFixAoA5c+awdetWvv76a5o1a8Z1113Hiy++yIcffkhaWhoAn3zyCdWrV+fNN9+kfv36jBw5kptvvpm3337b1dZbb73F3XffzbBhw2jQoAGffPIJwcHBfPnll5Z8Rsk75wqLjRqZS667y3n/WLuodvj5uDnPrphzbhI9bRpcNCidJ33r/7NJ9Lap7hcTERERKSTyFMjGjh3L4sWLueaaaxg1ahRjxozJ8siNESNG0KtXL7p165bl+bVr15Kenp7l+Xr16lGlShWWL18OwPLly2ncuDGRkZGua3r06EFCQgJbtmxxXXNx7R49erhqpKWlsXbt2izX2O12unXr5romO6mpqSQkJGR5iPU8taCH7h9zX6dOEBEBJ07A0qXu1+tTrw8Ayw8t58jZI+4XFBERESkE8hzIZs+ezbFjx9i0aRPr1q1zPdavX5/jOt999x1///03Y8eOveS12NhY/P39CQ8Pz/J8ZGQksbGxrmsuDGPO152vXemahIQEkpOTOXnyJJmZmdle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",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from collections import Counter\n",
    "# 计算长度分布\n",
    "chinese_length_counts = Counter(chinese_lengths)\n",
    "japanese_length_counts = Counter(japanese_lengths)\n",
    "\n",
    "# 获取所有可能的长度\n",
    "all_lengths = sorted(set(chinese_lengths + japanese_lengths))\n",
    "\n",
    "# 准备数据\n",
    "chinese_counts = [chinese_length_counts.get(length, 0) for length in all_lengths]\n",
    "japanese_counts = [japanese_length_counts.get(length, 0) for length in all_lengths]\n",
    "\n",
    "# # 打印统计结果\n",
    "# print(\"中文句子长度分布:\", chinese_length_counts)\n",
    "# print(\"日语句子长度分布:\", japanese_length_counts)\n",
    "\n",
    "# 可视化\n",
    "plt.figure(figsize=(10, 5))\n",
    "\n",
    "# 绘制折线图\n",
    "plt.plot(all_lengths, chinese_counts,  linestyle='-', color='blue', label='Chinese Sentences')\n",
    "plt.plot(all_lengths, japanese_counts,  linestyle='-', color='green', label='Japanese Sentences')\n",
    "\n",
    "# 添加图例\n",
    "plt.legend()\n",
    "\n",
    "# 添加标题和标签\n",
    "plt.title('')\n",
    "plt.xlabel('Length')\n",
    "plt.ylabel('Number')\n",
    "\n",
    "# 显示图表\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "793335"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计句子长度\n",
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "HMR",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
